package com.system.cacheCenterBackend.service;

import java.util.Map;

/**
 * Hash类型缓存服务接口
 */
public interface HashCacheService {

    /**
     * 设置哈希字段值
     *
     * @param key   键
     * @param value 值
     */
    void hashPut(String key, Map<String, Object> value);

    /**
     * 获取哈希字段值
     *
     * @param key   键
     * @param field 字段
     * @return 字段值
     */
    String hashGet(String key, String field);

    /**
     * 删除哈希字段
     *
     * @param key   键
     * @param field 字段
     * @return 删除的字段数量
     */
    Long hashDelete(String key, String field);

    /**
     * 获取哈希所有字段和值
     *
     * @param key 键
     * @return 字段值映射
     */
    Map<String, String> hashGetAll(String key);

    /**
     * 检查哈希字段是否存在
     *
     * @param key   键
     * @param field 字段
     * @return 是否存在
     */
    Boolean hashExists(String key, String field);

    /**
     * 获取哈希字段数量
     *
     * @param key 键
     * @return 字段数量
     */
    Long hashSize(String key);
}